package com.sromku.bugsnag.providers; import java.util.Collection; import org.eclipse.jface.viewers.ITreeContentProvider; import org.eclipse.jface.viewers.Viewer; import com.sromku.bugsnag.model.Account; import com.sromku.bugsnag.model.Project; public class ProjectsContentProvider implements ITreeContentProvider { @Override public void dispose() { } @Override public void inputChanged(Viewer viewer, Object oldInput, Object newInput) { } @SuppressWarnings("rawtypes") @Override public Object[] getElements(Object inputElement) { if (inputElement instanceof Object[]) { return (Object[]) inputElement; } if (inputElement instanceof Collection) { return ((Collection) inputElement).toArray(); } return new Object[0]; } @Override public Object[] getChildren(Object parentElement) { if (parentElement instanceof Account) { Account account = (Account) parentElement; return account.projects.toArray(); } return new Object[0]; } @Override public Object getParent(Object element) { if (element instanceof Project) { return ((Project) element).account; } return null; } @Override public boolean hasChildren(Object element) { if (element instanceof Account) { Account account = (Account) element; return account.projects != null && account.projects.size() > 0; } return false; } }